package cn.genmer.test.security.common;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.io.Serializable;
import java.util.List;
import java.util.Map;

public interface IRequestArgumentBody extends Serializable {
    String DEFAULT_PARAM_NAME = "params";
    String DEFAULT_DATA_KEY = "data";
    String DEFAULT_LOGIN_USERID_KEY = "loginUserId";
    String DEFAULT_LOGIN_ACCOUNT_KEY = "loginUserAccount";
    String DEFAULT_LOGIN_USERNAME_KEY = "loginUserName";
    String DEFAULT_APPCODE_KEY = "loginAppCode";
    String DEFAULT_SUPER_ADMIN_KEY = "superAdmin";
    String DEFAULT_PAGE_INDEX_KEY = "pageIndex";
    String DEFAULT_PAGE_SIZE_KEY = "pageSize";

    String getStringValue(String var1);

    String getStringValue(String var1, String var2);

    int getIntValue(String var1);

    int getIntValue(String var1, int var2);

    long getLongValue(String var1);

    long getLongValue(String var1, long var2);

    boolean getBooleanValue(String var1);

    boolean getBooleanValue(String var1, boolean var2);

    JSONObject getJSONObject(String var1);

    JSONArray getJSONArray(String var1);

    boolean constians(String var1);

    <T> T getObject(Class<T> var1);

    <T> T getObject(String var1, Class<T> var2);

    <T> List<T> getObjects(Class<T> var1);

    <T> List<T> getObjects(String var1, Class<T> var2);

    void setLoginUserId(long var1);

    long getLoginUserId();

    void setLoginAppCode(String var1);

    String getLoginAppCode();

    boolean isSuperAdmin();

    void addParameters(Map<String, Object> var1);

    void addParameter(String var1, Object var2);

    void addAttributes(Map<String, Object> var1);

    void addAttribute(String var1, Object var2);

    Object getAttribute(String var1);

    String getJsonString();

    Map<String, Object> getRequestParams();

    int getPageIndex();

    int getPageSize();

//    <T> ResponsePagination<T> getPagination();
}
